<?php

/**
 * $[ Login.class ] [ MODEL ]
 * Responsável por autenticar, validar, e checar usuário do sistema de login!
 *
 *@copyright (c) 2015, Rafael Batista da Silva
 */
class Login {

	private $Level;
	private $Email;
	private $Senha;
	private $Error;
	private $Result;

	function __construct($Level){
		$this->Level = (int) $Level;
	}

	function ExeLogin(array $UserDate){
		$this->Email = strip_tags(trim($UserDate['user']));
		$this->Senha = strip_tags(trim($UserDate['pass']));
		$this->setLogin();
	}

	public function getResult(){
		return $this->Result;
	}

	public function getError(){
		return $this->Error;
	}

	public function checkLogin(){
		if (empty($_SESSION['userlogin']) || $_SESSION['userlogin']['Nivel_Usuario'] < $this->Level):
			unset($_SESSION['userlogin']);
			return false;
		else:
			return true;
		endif;
	}

	// PRIVATES
        public function setLoginn(){
            $this->setLogin();
        }

        private function setLogin(){
		if(!$this->Email || !$this->Senha):
			$this->Error = ['Informe seu E-mail e senha para efetuar o login', WS_INFOR];
			$this->Result = false;
		elseif(!$this->getUser()):
			$this->Error = ['Dados informados não são compativeis', WS_ALERT];
			$this->Result = false;
		elseif($this->Result['Nivel_Usuario'] < $this->Level):
			$this->Error = ['Você não pode acessar esse painel!',WS_ERROR];
			$this->Result = false;
		else:
			$this->Execute();
		endif;
	}

	private function getUser(){
	$this->Senha = md5($this->Senha);
	
	$read = new Read;
	$read->ExeRead("usuario","WHERE Email_usuario= :e AND Senha_Usuario= :p","e={$this->Email}&p={$this->Senha}");
	if($read->getResult()):
		$this->Result = $read->getResult()[0];
		return true;
	else:
		return false;
	endif;

	}

	private function Execute(){
		if(!session_id()):
			session_start();
		endif;

		$_SESSION['userlogin'] = $this->Result;
		$this->Error = ["Ola {$this->Result['Email_usuario']}, seja bem vindo(a). Aguarde redirecionamento!"];
		$this->Result = true;
	}


}